(TexMagFilter GL_LINEAR)
where we want the Texture Magnification Filter to be set to GL_LINEAR
.
(TexMinFilter GL_NEAREST GL_LINEAR_MIPMAP_LINEAR)
would result in two runs being made, one with the Texture Minification Filter
set to GL_NEAREST
, the next with it set to
GL_LINEAR_MIPMAP_LINEAR
. If
multiple attribute lists are given, the Cartesian product of the lists is
calculated. Be careful, this can result in an enormous amount of tests!
(ObjsPerBeginEnd from 100 to 10 step -10)
This would set the number of objects to values {100, 90, 80, 70, 60, 50, 40,
30, 20, 10 }. Notice that negative step values are perfectly legal.
You can also step by a percentage of the current value, like:
(ObjsPerBeginEnd from 1 to 256 step 100%)
This would set the number of objects to powers of 2: {1, 2, 4, 8, 16, 32, 64, 128, 256}.
Negative step percentages, like step values, are legal as well.
(Fog *)
or
(Fog ALL)
would produce tests that would have the FogMode parameter set to values {
Off, GL_LINEAR, GL_EXP, GL_EXP2
}. Choosing a wildcard on
a type which
is not enumerated (e.g. Size
) will produce an error.
printf
statement,
which is restricted to use with the UserString
property.
This attribute allows you to construct a printf statement of your
choice, using property names as arguments to the printf
function.
For example,
TriangleStripTest {
(UserString printf("Triangle strip: %.0f pixels", Size))
(Size from 20 to 100 step 20)
}
is equivalent to the following five tests:
TriangleStripTest {
(UserString "Triangle strip: 20 pixels")
(Size 20)
}
TriangleStripTest {
(UserString "Triangle strip: 40 pixels")
(Size 40)
}
TriangleStripTest {
(UserString "Triangle strip: 60 pixels")
(Size 60)
}
TriangleStripTest {
(UserString "Triangle strip: 80 pixels")
(Size 80)
}
TriangleStripTest {
(UserString "Triangle strip: 100 pixels")
(Size 100)
}
DrawPixelsTest {
([ImageWidth ImageHeight] 16 32 64 128)
}
This is substantially more succinct than the other option:
DrawPixelsTest {
(ImageWidth 16)
(ImageHeight 16)
}
DrawPixelsTest {
(ImageWidth 32)
(ImageHeight 32)
}
DrawPixelsTest {
(ImageWidth 64)
(ImageHeight 64)
}
DrawPixelsTest {
(ImageWidth 128)
(ImageHeight 128)
}
/* */
kind, and C++ are the type which start
with //
and continue to the end of the line. To allow easy creation of input
files, GLperf provides a decent amount of syntactic and semantic error
checking.
In addition to providing flexible specification of tests to run, I have attempted to also provide flexible reporting options. With the enormous amount of state information present in each test, it is not easy to devise a simple reporting mechanism. The standard format allows one line per attribute and specifies in detail which attributes are set to what. You may also choose the "delta" (-d) option which will only show which values have changed from the previous test. Additionally, you can select whether you want the timing metrics to be reported in objects per second or microseconds per object. The microsecond metric is selected by the -u flag. You may also wish to view the performance in terms of pixels rather than objects. The -p flag will allow you to do this.
{
LocalPropertyList }
(
PropertyName AttributeValue )
from
int to
int | from
int to
int step
int | from
int to
int step
int % |
from
float to
float |
from
float to
float step
float |
from
float to
float step
float %
List -> Value | Value List
Value -> Enumerated | float | int | 0xhex
Wildcard -> ALL
| *
Where TestName is one of:
BitmapTest
ClearTest
CopyPixelsTest
DrawPixelsTest
LineLoopTest
LineStripTest
LinesTest
PointsTest
PolygonTest
QuadStripTest
QuadsTest
ReadPixelsTest
TexImageTest
TextTest
TransformTest
TriangleFanTest
TriangleStripTest
TrianglesTest
Where PropertyName is one of:
Where Enumerated is one of the permissible values listed in the property
description tables below.
Class Hierarchy and Data Organization
A Suite Object is created when an input file is parsed. It consists of a
set of Test objects. The Test class hierarchy is as follows:
Test ------ Drawn ------ Primitive ------ Vertex ------ Points
| | | |
| | | ------ Linear ------ Lines
| | | | |
| | | | ------ LineStrip
| | | | |
| | | | ------ LineLoop
| | | |
| | | ------ Polygonal ----- Triangles
| | | |
| | | ----- TriangleStrip
| | | |
| | | ----- TriangleFan
| | | |
| | | ----- Quads
| | | |
| | | ----- QuadStrip
| | | |
| | | ----- Polygon
| | |
| | ------ RasterPos ----- Bitmap {Image}
| | |
| | ----- Text
| | |
| | ----- DrawPixels {Image, TransferMap, Zoom}
| | |
| | ----- CopyPixels {Image, TransferMap, Zoom}
| |
| ------ Clear
|
------ Transform
|
------ ReadPixels {Image, TransferMap}
|
------ TexImage {Image, TransferMap}
Classes shown in brackets are additional inherited classes (i.e. multiple inheritance).
The data stored in each class is as follows:
Properties for Bitmap Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
BitmapWidth
Width of Bitmap
Width of bitmap (width defaults to ImageWidth unless this is set, in which case this sets the subimage width)
RangedInteger
[1, 2048]
-1
Yes
Yes
BitmapHeight
Height of Bitmap
Height of bitmap (height defaults to ImageHeight unless this is set, in which case this sets the subimage height)
RangedInteger
[1, 2048]
-1
Yes
Yes
Properties for Clear Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
ClearColorBuffer
Clear Color Buffer
Clear the Color Buffer
Enumerated
True
False
True
Yes
Yes
ClearDepthBuffer
Clear Depth Buffer
Clear the Depth Buffer
Enumerated
True
False
False
Yes
Yes
ClearStencilBuffer
Clear Stencil Buffer
Clear the Stencil Buffer
Enumerated
True
False
False
Yes
Yes
ClearAccumBuffer
Clear Accumulation Buffer
Clear the Accumulation Buffer
Enumerated
True
False
False
Yes
Yes
ClearIndex
Clear Index
Index value to clear to in color index mode
RangedFloatOrInt
[0.0, 4096.0]
0.0
Yes
Yes
ClearColor
Clear Color
Color to clear to in RGB/RGBA mode
Enumerated
Red
Green
Blue
Cyan
Magenta
Yellow
White
Grey
Black
Black
Yes
Yes
PointDraw
Draw Point Between Clears
Draws a point between clears to preclude cheating
Enumerated
On
Off
Off
Yes
Yes
Properties for CopyPixels Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
CopyPixelsWidth
Width of CopyPixels
Width of CopyPixels call
RangedInteger
[1, 2048]
64
Yes
Yes
CopyPixelsHeight
Height of CopyPixels
Height of CopyPixels call
RangedInteger
[1, 2048]
64
Yes
Yes
CopyPixelsType
Type of CopyPixels
Type of CopyPixels call - specifies what kind of buffer to copy
Enumerated
GL_COLOR
GL_DEPTH
GL_STENCIL
GL_COLOR
Yes
Yes
ReadBuffer
Read Buffer
Specifies what buffer to copy from (the source of the CopyPixels)
Enumerated
GL_FRONT_LEFT
GL_FRONT_RIGHT
GL_BACK_LEFT
GL_BACK_RIGHT
GL_FRONT
GL_BACK
GL_LEFT
GL_RIGHT
GL_AUX0
GL_AUX1
GL_AUX2
GL_AUX3
GL_FRONT
Yes
Yes
Properties for DrawPixels Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
DrawPixelsWidth
Width of DrawPixels
Width of DrawPixels call (width defaults to ImageWidth unless DrawPixelsWidth is set, in which case it sets the subimage width)
RangedInteger
[1, 2048]
-1
Yes
Yes
DrawPixelsHeight
Height of DrawPixels
Height of DrawPixels call (height defaults to ImageHeight unless DrawPixelsHeight is set, in which case it sets the subimage height)
RangedInteger
[1, 2048]
-1
Yes
Yes
Properties for Drawn Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
DrawableType
Drawable Type
Target drawable (this currently only supports rendering to windows)
Enumerated
WindowDraw
WindowDraw
Yes
Yes
RenderMode
Render Mode
Render mode (currently only supports GL_RENDER)
Enumerated
GL_RENDER
GL_RENDER
Yes
Yes
Dither
Dither Enabled
Dithering state
Enumerated
On
Off
On
Yes
Yes
DrawBuffer
Draw Buffer
Buffer destination of drawing
Enumerated
GL_NONE
GL_FRONT_LEFT
GL_FRONT_RIGHT
GL_BACK_LEFT
GL_BACK_RIGHT
GL_FRONT
GL_BACK
GL_FRONT_AND_BACK
GL_LEFT
GL_RIGHT
GL_AUX0
GL_AUX1
GL_AUX2
GL_AUX3
GL_FRONT
Yes
Yes
ColorMask
Color Mask Enabled
Color masking state - argument specifies boolean flags passed to glColorMask
Enumerated
TTTT
TTTF
TTFT
TTFF
TFTT
TFTF
TFFT
TFFF
FTTT
FTTF
FTFT
FTFF
FFTT
FFTF
FFFT
FFFF
TTTT
Yes
Yes
IndexMask
Index Mask Enabled
Index Mask value
RangedHexInteger
[0, 0xffff]
0xffff
Yes
Yes
Scissor
Scissoring Enabled
Scissor test state
Enumerated
On
Off
Off
Yes
Yes
ScissorX
Scissor X
X coordinate of scissor rectangle's origin
RangedInteger
[0, 2048]
0
Yes
Yes
ScissorY
Scissor Y
Y coordinate of scissor rectangle's origin
RangedInteger
[0, 2048]
0
Yes
Yes
ScissorWidth
Scissor Width
Width of scissor rectangle
RangedInteger
[0, 2048]
-1
Yes
Yes
ScissorHeight
Scissor Height
Height of scissor rectangle
RangedInteger
[0, 2048]
-1
Yes
Yes
Properties for Image Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
ImageFormat
Image Format
Format of the Image Data
Enumerated
GL_COLOR_INDEX
GL_STENCIL_INDEX
GL_DEPTH_COMPONENT
GL_RED
GL_GREEN
GL_BLUE
GL_ALPHA
GL_LUMINANCE
GL_LUMINANCE_ALPHA
GL_RGB
GL_RGBA
GL_ABGR_EXT
GL_RGBA
Yes
Yes
ImageType
Image Type
Type of the Image Data
Enumerated
GL_BITMAP
GL_UNSIGNED_BYTE
GL_BYTE
GL_UNSIGNED_SHORT
GL_SHORT
GL_UNSIGNED_INT
GL_INT
GL_FLOAT
GL_UNSIGNED_BYTE_3_3_2_EXT
GL_UNSIGNED_SHORT_4_4_4_4_EXT
GL_UNSIGNED_SHORT_5_5_5_1_EXT
GL_UNSIGNED_INT_8_8_8_8_EXT
GL_UNSIGNED_INT_10_10_10_2_EXT
GL_UNSIGNED_BYTE
Yes
Yes
ImageAlignment
Image Alignment
PixelStore Alignment of the Image Data
Enumerated
1
2
4
8
4
Yes
Yes
ImageSwapBytes
Image Swap Bytes
PixelStore Swap Bytes State of the Image Data
Enumerated
True
False
False
Yes
Yes
ImageLSBFirst
Image LSB First
PixelStore LSB First State of the Image Data, pertains to Bitmap ImageType only
Enumerated
True
False
False
Yes
Yes
ImageWidth
Image Width
This is the width of the image data allocated in memory. Under some circumstances, a subimage of this image may be written or read into. This is where ImageWidth is larger than DrawPixelsWidth, ReadPixelsWidth, CopyPixelsWidth, BitmapWidth, or TexImageWidth. By default, these parameters will be equal to ImageWidth unless explicitly set by the user. If these parameters are larger than ImageWidth, they will be clamped to ImageWidth (this is not a bug!). This property has no meaning in the CopyPixels case.
RangedInteger
[1, 65536]
64
Yes
Yes
ImageHeight
Image Height
This is the height of the image data allocated in memory. Under some circumstances, a subimage of this image may be written or read into. This is where ImageHeight is larger than DrawPixelsHeight, ReadPixelsHeight, CopyPixelsHeight, BitmapHeight, or TexImageHeight. By default, these parameters will be equal to ImageHeight unless explicitly set by the user. If these parameters are larger than ImageHeight, they will be clamped to ImageHeight (this is not a bug!). This property has no meaning in the CopyPixels case.
RangedInteger
[1, 65536]
64
Yes
Yes
Properties for Linear Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
LineWidth
Line Width
Line width
RangedFloatOrInt
[0.0, 1000.0]
1.0
Yes
Yes
LineStipple
Line Stippling Enabled
Line stipple enable state
Enumerated
On
Off
Off
Yes
Yes
Properties for Polygon Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
PolygonSides
Number of Sides in Polygon
Number of sides on a polygon
RangedInteger
[3, 99]
4
Yes
Yes
Properties for Polygonal Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
Aspect
Aspect
Ratio of height of polygon to its width
RangedFloatOrInt
[0.01, 100.0]
1.0
Yes
Yes
PolygonModeFront
Polygon Rasterization Mode/Front Side
Polygon Rasterization Mode/Front Side
Enumerated
GL_POINT
GL_LINE
GL_FILL
GL_FILL
Yes
Yes
PolygonModeBack
Polygon Rasterization Mode/Back Side
Polygon Rasterization Mode/Back Side
Enumerated
GL_POINT
GL_LINE
GL_FILL
GL_FILL
Yes
Yes
PolygonStipple
Polygon Stippling Enabled
Polygon Stipple enable state
Enumerated
On
Off
Off
Yes
Yes
TwoSided
Two Sided Lighting
Two sided lighting enable state
Enumerated
On
Off
Off
Yes
Yes
CullFace
Cull Face Mode
Face culling method
Enumerated
Off
GL_FRONT
GL_BACK
GL_FRONT_AND_BACK
Off
Yes
Yes
FacingFront
Fraction of Polygons Facing Front
Fraction of primitives that are facing front, FacingBack + FacingFront must equal 1.0
RangedFloat
[0.0, 1.0]
1.0
Yes
Yes
FacingBack
Fraction of Polygons Facing Back
Fraction of primitives that are facing back, FacingBack + FacingFront must equal 1.0
RangedFloat
[0.0, 1.0]
0.0
Yes
Yes
Properties for Primitive Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
ColorDim
Dimension of Color Data
Dimension of Color Data
RangedInteger
[3, 4]
3
Yes
Yes
Projection
Projection Matrix Type
Projection Matrix Type
Enumerated
Parallel
Perspective
Perspective
Yes
Yes
AcceptObjs
Fraction of Primitives Trivially Accepted
Fraction of primitives that are trivially accepted, ClipObjs + AcceptObjs + RejectObjs must equal 1.0
RangedFloat
[0.0, 1.0]
1.0
Yes
Yes
RejectObjs
Fraction of Primitives Trivially Rejected
Fraction of primitives that are trivially rejected, ClipObjs + AcceptObjs + RejectObjs must equal 1.0
RangedFloat
[0.0, 1.0]
0.0
Yes
Yes
ClipObjs
Fraction of Primitives Clipped
Fraction of primitives that are clipped by window, ClipObjs + AcceptObjs + RejectObjs must equal 1.0
RangedFloat
[0.0, 1.0]
0.0
Yes
Yes
DepthOrder
Vertex/RasterPos Depth Ordering
Z Order of drawn primitives
Enumerated
Coplanar
Random
BackToFront
FrontToBack
Coplanar
Yes
Yes
TexGen
Texture Generation
Texture generation method
Enumerated
Off
GL_SPHERE_MAP
GL_EYE_LINEAR
GL_OBJECT_LINEAR
Off
Yes
Yes
TexTarget
Texture Target
Texture enable state
Enumerated
Off
GL_TEXTURE_1D
GL_TEXTURE_2D
GL_TEXTURE_3D_EXT
Off
Yes
Yes
TexWidth
Texture Width
Texture image width (level 0)
RangedInteger
[1, 65536]
64
Yes
Yes
TexHeight
Texture Height
Texture image height (level 0)
RangedInteger
[1, 65536]
64
Yes
Yes
TexDepth
Texture Depth
Texture image depth (level 0), (supported only with GL_EXT_texture3D)
RangedInteger
[1, 65536]
64
Yes
Yes
TexExtent
Texture Extent
Texture image extent (fourth dimension), (supported only with GL_SGIS_texture4D)
RangedInteger
[1, 65536]
1
Yes
Yes
TexBorder
Texture Border
Width of texture border
RangedInteger
[0, 1]
0
Yes
Yes
TexComps
Internal Texture Components
Number of components in or internal format of the texture image (those formats other than 1, 2, 3, 4, only supported with GL_EXT_texture) (dual and quad formats only supported with GL_SGIS_texture_select)
Enumerated
1
2
3
4
GL_ALPHA
GL_ALPHA4_EXT
GL_ALPHA8_EXT
GL_ALPHA12_EXT
GL_ALPHA16_EXT
GL_LUMINANCE
GL_LUMINANCE4_EXT
GL_LUMINANCE8_EXT
GL_LUMINANCE12_EXT
GL_LUMINANCE16_EXT
GL_LUMINANCE_ALPHA
GL_LUMINANCE4_ALPHA4_EXT
GL_LUMINANCE6_ALPHA2_EXT
GL_LUMINANCE8_ALPHA8_EXT
GL_LUMINANCE12_ALPHA4_EXT
GL_LUMINANCE12_ALPHA12_EXT
GL_LUMINANCE16_ALPHA16_EXT
GL_INTENSITY_EXT
GL_INTENSITY4_EXT
GL_INTENSITY8_EXT
GL_INTENSITY12_EXT
GL_INTENSITY16_EXT
GL_RGB
GL_RGB2_EXT
GL_RGB4_EXT
GL_RGB5_EXT
GL_RGB5_A1_EXT
GL_RGB8_EXT
GL_RGB10_EXT
GL_RGB10_A2_EXT
GL_RGB12_EXT
GL_RGB16_EXT
GL_RGBA
GL_RGBA2_EXT
GL_RGBA4_EXT
GL_RGBA8_EXT
GL_RGBA12_EXT
GL_RGBA16_EXT
GL_DUAL_ALPHA4_SGIS
GL_DUAL_ALPHA8_SGIS
GL_DUAL_ALPHA12_SGIS
GL_DUAL_ALPHA16_SGIS
GL_DUAL_LUMINANCE4_SGIS
GL_DUAL_LUMINANCE8_SGIS
GL_DUAL_LUMINANCE12_SGIS
GL_DUAL_LUMINANCE16_SGIS
GL_DUAL_INTENSITY4_SGIS
GL_DUAL_INTENSITY8_SGIS
GL_DUAL_INTENSITY12_SGIS
GL_DUAL_INTENSITY16_SGIS
GL_DUAL_LUMINANCE_ALPHA4_SGIS
GL_DUAL_LUMINANCE_ALPHA8_SGIS
GL_QUAD_ALPHA4_SGIS
GL_QUAD_ALPHA8_SGIS
GL_QUAD_LUMINANCE4_SGIS
GL_QUAD_LUMINANCE8_SGIS
GL_QUAD_INTENSITY4_SGIS
GL_QUAD_INTENSITY8_SGIS
3
Yes
Yes
TexCompSelect
Texture Component Selected
Texture component that is selected (only supported with GL_SGIS_texture_select)
RangedInteger
[0, 3]
0
Yes
Yes
TexLOD
Texture Level Of Detail
Texture level of detail for computed texture coordinates of primitives
RangedFloatOrInt
[-32., 32.]
0.
Yes
Yes
TexMagFilter
Texture Magnification Filter
Texture magnification filter (filter4 only with GL_SGIS_texture_filter4, detail only with GL_SGIS_detail_texture, sharpen only with GL_SGIS_sharpen_texture)
Enumerated
GL_NEAREST
GL_LINEAR
GL_FILTER4_SGIS
GL_LINEAR_DETAIL_SGIS
GL_LINEAR_DETAIL_ALPHA_SGIS
GL_LINEAR_DETAIL_COLOR_SGIS
GL_LINEAR_SHARPEN_SGIS
GL_LINEAR_SHARPEN_ALPHA_SGIS
GL_LINEAR_SHARPEN_COLOR_SGIS
GL_NEAREST
Yes
Yes
TexMinFilter
Texture Minification Filter
Texture minification filter (filter4 only with GL_SGIS_texture_filter4)
Enumerated
GL_NEAREST
GL_LINEAR
GL_FILTER4_SGIS
GL_NEAREST_MIPMAP_NEAREST
GL_NEAREST_MIPMAP_LINEAR
GL_LINEAR_MIPMAP_NEAREST
GL_LINEAR_MIPMAP_LINEAR
GL_NEAREST
Yes
Yes
TexWrapS
Texture Wrap S
Texture wrapping mode for S coordinate (clamp to border only with GL_SGIS_texture_border_clamp, clamp to edge only with GL_SGIS_texture_edge_clamp)
Enumerated
GL_CLAMP
GL_REPEAT
GL_CLAMP_TO_BORDER_SGIS
GL_CLAMP_TO_EDGE_SGIS
GL_REPEAT
Yes
Yes
TexWrapT
Texture Wrap T
Texture wrapping mode for T coordinate (clamp to border only with GL_SGIS_texture_border_clamp, clamp to edge only with GL_SGIS_texture_edge_clamp)
Enumerated
GL_CLAMP
GL_REPEAT
GL_CLAMP_TO_BORDER_SGIS
GL_CLAMP_TO_EDGE_SGIS
GL_REPEAT
Yes
Yes
TexWrapR
Texture Wrap R
Texture wrapping mode for R coordinate (clamp to border only with GL_SGIS_texture_border_clamp, clamp to edge only with GL_SGIS_texture_edge_clamp)
Enumerated
GL_CLAMP
GL_REPEAT
GL_CLAMP_TO_BORDER_SGIS
GL_CLAMP_TO_EDGE_SGIS
GL_REPEAT
Yes
Yes
TexWrapQ
Texture Wrap Q
Texture wrapping mode for Q coordinate (clamp to border only with GL_SGIS_texture_border_clamp, clamp to edge only with GL_SGIS_texture_edge_clamp)
Enumerated
GL_CLAMP
GL_REPEAT
GL_CLAMP_TO_BORDER_SGIS
GL_CLAMP_TO_EDGE_SGIS
GL_REPEAT
Yes
Yes
PostTexFilterRedScale
Post Texture Filter Red Scale Factor
Post-filtering texture scale value for texel's red component (only with GL_SGIX_texture_scale_bias)
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
PostTexFilterRedBias
Post Texture Filter Red Bias Factor
Post-filtering texture bias value for texel's red component (only with GL_SGIX_texture_scale_bias)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
PostTexFilterGreenScale
Post Texture Filter Green Scale Factor
Post-filtering texture scale value for texel's green component (only with GL_SGIX_texture_scale_bias)
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
PostTexFilterGreenBias
Post Texture Filter Green Bias Factor
Post-filtering texture bias value for texel's green component (only with GL_SGIX_texture_scale_bias)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
PostTexFilterBlueScale
Post Texture Filter Blue Scale Factor
Post-filtering texture scale value for texel's blue component (only with GL_SGIX_texture_scale_bias)
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
PostTexFilterBlueBias
Post Texture Filter Blue Bias Factor
Post-filtering texture bias value for texel's blue component (only with GL_SGIX_texture_scale_bias)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
PostTexFilterAlphaScale
Post Texture Filter Alpha Scale Factor
Post-filtering texture scale value for texel's alpha component (only with GL_SGIX_texture_scale_bias)
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
PostTexFilterAlphaBias
Post Texture Filter Alpha Bias Factor
Post-filtering texture bias value for texel's alpha component (only with GL_SGIX_texture_scale_bias)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
TexColorTable
Texture Color Table Enabled
Texture color table enable state (only with GL_SGI_texture_color_table)
Enumerated
True
False
False
Yes
Yes
TexColorTableWidth
Texture Color Table Width
Texture color table width (only with GL_SGI_texture_color_table)
RangedInteger
[1, 65536]
256
Yes
Yes
TexColorTableInternalFormat
Texture Color Table Internal Format
Texture color table internal format (only with GL_SGI_texture_color_table)
Enumerated
1
2
3
4
GL_ALPHA
GL_ALPHA4_EXT
GL_ALPHA8_EXT
GL_ALPHA12_EXT
GL_ALPHA16_EXT
GL_LUMINANCE
GL_LUMINANCE4_EXT
GL_LUMINANCE8_EXT
GL_LUMINANCE12_EXT
GL_LUMINANCE16_EXT
GL_LUMINANCE_ALPHA
GL_LUMINANCE4_ALPHA4_EXT
GL_LUMINANCE6_ALPHA2_EXT
GL_LUMINANCE8_ALPHA8_EXT
GL_LUMINANCE12_ALPHA4_EXT
GL_LUMINANCE12_ALPHA12_EXT
GL_LUMINANCE16_ALPHA16_EXT
GL_INTENSITY_EXT
GL_INTENSITY4_EXT
GL_INTENSITY8_EXT
GL_INTENSITY12_EXT
GL_INTENSITY16_EXT
GL_RGB
GL_RGB2_EXT
GL_RGB4_EXT
GL_RGB5_EXT
GL_RGB5_A1_EXT
GL_RGB8_EXT
GL_RGB10_EXT
GL_RGB10_A2_EXT
GL_RGB12_EXT
GL_RGB16_EXT
GL_RGBA
GL_RGBA2_EXT
GL_RGBA4_EXT
GL_RGBA8_EXT
GL_RGBA12_EXT
GL_RGBA16_EXT
GL_RGBA8_EXT
Yes
Yes
TexFunc
Texture Function
Texture function (replace only with GL_EXT_texture)
Enumerated
GL_MODULATE
GL_BLEND
GL_DECAL
GL_REPLACE_EXT
GL_DECAL
Yes
Yes
TexDetailWidth
Detail Texture Width
Detail texture width (only with GL_SGIS_detail_texture)
RangedInteger
[1, 1024]
256
Yes
Yes
TexDetailHeight
Detail Texture Height
Detail texture height (only with GL_SGIS_detail_texture)
RangedInteger
[1, 1024]
256
Yes
Yes
TexDetailLevel
Detail Texture Level
Detail texture level (only with GL_SGIS_detail_texture)
RangedInteger
[0, 1024]
4
Yes
Yes
TexDetailMode
Detail Texture Mode
Detail texture mode (only with GL_SGIS_detail_texture)
Enumerated
GL_MODULATE
GL_ADD
GL_ADD
Yes
Yes
Fog
Fogging Mode
Fogging state and parameter
Enumerated
Off
GL_LINEAR
GL_EXP
GL_EXP2
Off
Yes
Yes
AlphaTest
Alpha Test Function
Alpha test function
Enumerated
Off
GL_NEVER
GL_LESS
GL_EQUAL
GL_LEQUAL
GL_GREATER
GL_NOTEQUAL
GL_GEQUAL
GL_ALWAYS
Off
Yes
Yes
AlphaRef
Alpha Reference Value
Alpha reference value
RangedFloat
[0.0, 1.0]
0.0
Yes
Yes
StencilTest
Stencil Test Function
Stencil test function
Enumerated
Off
GL_NEVER
GL_LESS
GL_EQUAL
GL_LEQUAL
GL_GREATER
GL_NOTEQUAL
GL_GEQUAL
GL_ALWAYS
Off
Yes
Yes
DepthTest
Depth Test Function
Depth test function
Enumerated
Off
GL_NEVER
GL_LESS
GL_EQUAL
GL_LEQUAL
GL_GREATER
GL_NOTEQUAL
GL_GEQUAL
GL_ALWAYS
Off
Yes
Yes
DepthMask
Depth Mask
Depth buffer write enable state
Enumerated
Off
On
On
Yes
Yes
Blend
Blend Enabled
Blend enable state
Enumerated
Off
On
Off
Yes
Yes
BlendEquation
Blend Equation
Blending equation (logic op only with GL_EXT_blend_logic_op, min/max only with GL_EXT_blend_minmax, subtract modes only with GL_EXT_blend_subtract)
Enumerated
GL_FUNC_ADD_EXT
GL_LOGIC_OP
GL_MIN_EXT
GL_MAX_EXT
GL_FUNC_SUBTRACT_EXT
GL_FUNC_REVERSE_SUBTRACT_EXT
GL_FUNC_ADD_EXT
Yes
Yes
SrcBlendFunc
Source Blend Function
Source blending function (constant color/alpha only with GL_EXT_blend_color)
Enumerated
GL_ZERO
GL_ONE
GL_DST_COLOR
GL_ONE_MINUS_DST_COLOR
GL_SRC_ALPHA
GL_ONE_MINUS_SRC_ALPHA
GL_DST_ALPHA
GL_ONE_MINUS_DST_ALPHA
GL_SRC_ALPHA_SATURATE
GL_CONSTANT_COLOR_EXT
GL_ONE_MINUS_CONSTANT_COLOR_EXT
GL_CONSTANT_ALPHA_EXT
GL_ONE_MINUS_CONSTANT_ALPHA_EXT
GL_ONE
Yes
Yes
DstBlendFunc
Destination Blend Function
Destination blend function (constant color/alpha only with GL_EXT_blend_color)
Enumerated
GL_ZERO
GL_ONE
GL_SRC_COLOR
GL_ONE_MINUS_SRC_COLOR
GL_SRC_ALPHA
GL_ONE_MINUS_SRC_ALPHA
GL_DST_ALPHA
GL_ONE_MINUS_DST_ALPHA
GL_CONSTANT_COLOR_EXT
GL_ONE_MINUS_CONSTANT_COLOR_EXT
GL_CONSTANT_ALPHA_EXT
GL_ONE_MINUS_CONSTANT_ALPHA_EXT
GL_ONE
Yes
Yes
LogicOp
Logical Operation
Bitwise logical operation (only performed with color index visuals/pixel formats)
Enumerated
Off
GL_AND
GL_AND_INVERTED
GL_AND_REVERSE
GL_CLEAR
GL_COPY
GL_COPY_INVERTED
GL_EQUIV
GL_INVERT
GL_NAND
GL_NOOP
GL_NOR
GL_OR
GL_OR_INVERTED
GL_OR_REVERSE
GL_SET
GL_XOR
Off
Yes
Yes
Multisample
Multisample Antialiasing
Multisample antialiasing enable state
Enumerated
Off
On
Off
Yes
Yes
Properties for QuadStrip Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
TwistsPerStrip
Twists Per Quad Strip
Number of twists in each quad strip. To get results from this, you must specify FacingFront and FacingBack values different than the default.
RangedInteger
[0, 100000]
0
Yes
Yes
Properties for RasterPos Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
RasterPosDim
Dimension of RasterPos Data
Dimension of RasterPos data
RangedInteger
[2, 3]
3
Yes
Yes
ColorData
Color/Index Data
Color or index data associated with coordinate data
Enumerated
None
PerRasterPos
None
Yes
Yes
TexData
Texture Coordinate Data
Texture coordinate data associated with coordinate data
Enumerated
None
PerRasterPos
None
Yes
Yes
ClipAmount
Amount of Image/Bitmap/Text that is Clipped
Fraction of Image/Bitmap/Text that is clipped out by window (only ClipObjs objects are clipped)
RangedFloat
[0.0, 1.0]
0.5
Yes
Yes
ClipMode
Manner in which Image/Bitmap/Text is Clipped
Manner in which Image/Bitmap/Text is clipped by window
Enumerated
Horizontal
Vertical
Random
Random
Yes
Yes
DrawOrder
Order in which Images/Bitmaps/Text are Drawn
Order in which Images/Bitmaps/Text are read out of memory and drawn on screen
Enumerated
Serial
Spaced
Spaced
Yes
Yes
Properties for ReadPixels Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
ReadPixelsWidth
Width of ReadPixels
Width of ReadPixels call; usually defaults to ImageWidth, but if set, allows user to sub-read into a wider image in memory)
RangedInteger
[1, 2048]
-1
Yes
Yes
ReadPixelsHeight
Height of ReadPixels
Height of ReadPixels call; usually defaults to ImageHeight, but if set, allows user to sub-read into a taller image in memory)
RangedInteger
[1, 2048]
-1
Yes
Yes
ReadBuffer
Read Buffer
Specifies what buffer to read from (the source of the ReadPixels) (aux buffers not supported on all systems)
Enumerated
GL_FRONT_LEFT
GL_FRONT_RIGHT
GL_BACK_LEFT
GL_BACK_RIGHT
GL_FRONT
GL_BACK
GL_LEFT
GL_RIGHT
GL_AUX0
GL_AUX1
GL_AUX2
GL_AUX3
GL_FRONT
Yes
Yes
ReadOrder
Order in which Images/Bitmaps/Text are Read
Order in which Images are read into system memory
Enumerated
Serial
Spaced
Spaced
Yes
Yes
Properties for Test Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
TestType
Test Type
Primitive type being tested
Enumerated
ClearTest
TransformTest
PointsTest
LinesTest
LineLoopTest
LineStripTest
TrianglesTest
TriangleStripTest
TriangleFanTest
QuadsTest
QuadStripTest
PolygonTest
DrawPixelsTest
CopyPixelsTest
BitmapTest
TextTest
ReadPixelsTest
TexImageTest
ClearTest
No
Yes
FileName
GLperf Script File Name
File name of GLperf script
StringType
Any String
"None"
Yes
Yes
UserString
User Defined String
String to be defined by script writer for easier reading/parsing of results
PrintfStringType
See Printf Syntax
"None"
Yes
No
PrintModeDelta
Print Mode Delta
If True, same as setting -d on command line, where successive tests in the report are deltas of previous tests of the same TestType
Enumerated
False
True
False
Yes
Yes
PrintModeStateDelta
Print Mode Delta from Default State
If True, same as setting -s on command line, where tests in the report are deltas of the default GLperf state
Enumerated
False
True
False
Yes
Yes
PrintModeMicrosec
Print Mode Microseconds
If True, same as setting -u on command line, where results in the report are measured in microseconds rather than frequency (e.g. usec/triangle rather than triangles/sec)
Enumerated
False
True
False
Yes
Yes
PrintModePixels
Print Mode Pixels Per Second
If True, same as setting -p on command line, where results in the report are measured in pixels rather than objects. (e.g. pixels/sec rather than triangles/sec)
Enumerated
False
True
False
Yes
Yes
GLperfVersion
GLperf Version
Version of GLperf that is being run
StringType
Any String
"3.0.9"
No
Yes
ExecuteMode
Execute Mode
Mode of test execution
Enumerated
Immediate
Compile
CallList
CompileExecute
DestroyList
Immediate
Yes
Yes
Objs
Number of Objects
Number of objects allocated and defined in memory and traversed. This can have many different meanings. For instance, for Points, it is simply the number of vertexes to be traversed in the loop. For images (DrawPixels, ReadPixels, TexImage, etc.) it is the number of complete images to be sequenced through in the loop.
RangedInteger
[1, 1000000]
1
Yes
Yes
Iterations
Iterations
Number of "screenfulls" done per timing period. If set, it takes precedence over MinimumTime
RangedInteger
[1, 100000]
-1
Yes
No
Reps
Repetitions
Number of timing periods performed per test
RangedInteger
[1, 100000]
1
Yes
No
MinimumTime
Test Time
Approximate number of seconds per timing period
RangedInteger
[1, 100000]
5
Yes
No
LoopUnroll
Vertices Unrolled in Inner Loop
Number of vertices unrolled in the inner traversal loop. This number must be evenly divisible by the number of vertices in a facet (e.g. triangles - 3, lines - 2, quads - 4, line strip - 1, quad strip - 2) OR the number of vertices in a facet must be evenlydivisible by the number of vertices unrolled. Also, an optional compile time option must be set to support values other than one (see README).
RangedInteger
[1, 8]
1
Yes
Yes
LoopFuncPtrs
Function Pointers Used in Inner Loop
Function pointers are used for all function calls within the timing loop (e.g. glVertex, glColor, glNormal, glTexCoord, glBegin, glEnd, etc.) An optional compile time option must be set to support this feature (see README).
Enumerated
Off
On
Off
Yes
Yes
DataAlignment
Modulo 4096 of Data Alignment
Modulo 4096 value of data alignment
RangedInteger
[0, 4095]
0
Yes
Yes
Month
Month
Month test was run
RangedInteger
[1, 12]
-1
No
Yes
Day
Day
Day test was run
RangedInteger
[1, 31]
-1
No
Yes
Year
Year
Year test was run
RangedInteger
[1994, 2010]
-1
No
Yes
Host
Host
Host on which test was run
StringType
Any String
"unknown"
No
Yes
HostOperatingSystem
Operating System
Operating system on which test was run
StringType
Any String
"unknown"
No
Yes
HostOperatingSystemVersion
Operating System Version
Version of operating system on which test was run
StringType
Any String
"unknown"
No
Yes
HostVendor
Host Vendor
Hardware vendor of host on which test was run
StringType
Any String
"unknown"
No
Yes
HostModel
Host Model
Model of host on which test was run
StringType
Any String
"unknown"
No
Yes
HostCPU
Host CPU
CPU type of host on which test was run
StringType
Any String
"unknown"
No
Yes
HostCPUCount
Host CPU Count
Number of CPUs on host on which test was run
StringType
Any String
"unknown"
No
Yes
HostMemorySize
Host Memory Size
Memory Size of host on which test was run
UnrangedInteger
Any Integer
-1
No
Yes
HostPrimaryCacheSize
Host Primary Cache Size
Primary cache size of host on which test was run
StringType
Any String
"unknown"
No
Yes
HostSecondaryCacheSize
Host Secondary Cache Size
Secondary cache size of host on which test was run
StringType
Any String
"unknown"
No
Yes
WindowSystem
Window System
Windowing system of host on which test was run
StringType
Any String
"unknown"
No
Yes
DriverVersion
Driver Version
Driver version of host on which test was run
StringType
Any String
"unknown"
No
Yes
OpenGLVendor
OpenGL Vendor
OpenGL vendor of host on which test was run
StringType
Any String
"unknown"
No
Yes
OpenGLVersion
OpenGL Version
OpenGL version of host on which test was run
StringType
Any String
"unknown"
No
Yes
OpenGLExtensions
OpenGL Extensions
OpenGL extensions of host on which test was run
StringType
Any String
"unknown"
No
Yes
OpenGLRenderer
OpenGL Renderer
OpenGL renderer of host on which test was run
StringType
Any String
"unknown"
No
Yes
OpenGLClientVendor
OpenGL Client Vendor
OpenGL client vendor of host on which test was run
StringType
Any String
"unknown"
No
Yes
OpenGLClientVersion
OpenGL Client Version
OpenGL client version of host on which test was run
StringType
Any String
"unknown"
No
Yes
OpenGLClientExtensions
OpenGL Client Extensions
OpenGL client extensions of host on which test was run
StringType
Any String
"unknown"
No
Yes
GLUVersion
GLU Version
GLU version of host on which test was run
StringType
Any String
"unknown"
No
Yes
GLUExtensions
GLU Extensions
GLU extensions of host on which test was run
StringType
Any String
"unknown"
No
Yes
DirectRender
Direct Rendering
Direct rendering enable state
Enumerated
True
False
True
Yes
Yes
DoubleBuffer
Double Buffer
Double buffer visual enable state
Enumerated
True
False
True
Yes
Yes
Stereo
Stereo
Stereo visual enable state
Enumerated
True
False
False
Yes
Yes
Rgba
RGBA
RGBA visual enable state
Enumerated
True
False
True
Yes
Yes
IndexSize
Color Index Size
Indicates the minimum index size necessary in the visual/pixel format
UnrangedInteger
Any Integer
0
Yes
Yes
RedSize
Red Size
Indicates the minimum red size necessary in the visual/pixel format
UnrangedInteger
Any Integer
1
Yes
Yes
GreenSize
Green Size
Indicates the minimum green size necessary in the visual/pixel format
UnrangedInteger
Any Integer
1
Yes
Yes
BlueSize
Blue Size
Indicates the minimum blue size necessary in the visual/pixel format
UnrangedInteger
Any Integer
1
Yes
Yes
AlphaSize
Alpha Size
Indicates the minimum alpha size necessary in the visual/pixel format
UnrangedInteger
Any Integer
0
Yes
Yes
AccumRedSize
Accum Red Size
Indicates the minimum accumulation buffer red size necessary in the visual/pixel format
UnrangedInteger
Any Integer
0
Yes
Yes
AccumGreenSize
Accum Green Size
Indicates the minimum accumulation buffer green size necessary in the visual/pixel format
UnrangedInteger
Any Integer
0
Yes
Yes
AccumBlueSize
Accum Blue Size
Indicates the minimum accumulation buffer blue size necessary in the visual/pixel format
UnrangedInteger
Any Integer
0
Yes
Yes
AccumAlphaSize
Accum Alpha Size
Indicates the minimum accumulation buffer alpha size necessary in the visual/pixel format
UnrangedInteger
Any Integer
0
Yes
Yes
DepthSize
Depth Size
Indicates the minimum depth buffer size necessary in the visual/pixel format
UnrangedInteger
Any Integer
1
Yes
Yes
StencilSize
Stencil Size
Indicates the minimum stencil buffer size necessary in the visual/pixel format
UnrangedInteger
Any Integer
0
Yes
Yes
AuxBuffers
Auxiliary Buffer Count
Number of aux buffers that are necessary/available
UnrangedInteger
Any Integer
0
Yes
Yes
SampleBuffers
Multisample Buffer Count
Number of multisample buffers that are necessary/available
RangedInteger
[0, 1]
0
Yes
Yes
SamplesPerPixel
Multisamples Per Pixel
Multisamples requested per pixel
RangedInteger
[0, 16]
0
Yes
Yes
FrameBufferLevel
Frame BufferLevel
Framebuffer level (0 is mainplanes, negative is underlay, positive is overlay)
UnrangedInteger
Any Integer
0
Yes
Yes
VisualId
Visual ID
Indicates the visual ID of the desired visual (only applies to X, PM)
UnrangedHexInteger
Any Integer
NoVisual
Yes
Yes
VisualClass
Visual Class
Visual class
Enumerated
StaticGray
GrayScale
StaticColor
PseudoColor
TrueColor
DirectColor
-1
No
Yes
WindowWidth
Window Width
Width of test window in pixels
RangedInteger
[100, 2048]
384
Yes
Yes
WindowHeight
Window Height
Height of test window in pixels
RangedInteger
[100, 2048]
384
Yes
Yes
ScreenWidth
Screen Width
Width of screen in pixels
{
[100, 2048]
384
Yes
Yes
ScreenHeight
Screen Height
Height of screen in pixels
{
[100, 2048]
384
Yes
Yes
DisplayName
Display
Name of X Display
StringType
Any String
"unknown"
No
Yes
OpenGLServerVendor
OpenGL Server Vendor
OpenGL server vendor of host on which test was run
StringType
Any String
"unknown"
No
Yes
OpenGLServerVersion
OpenGL Server Version
OpenGL server version of host on which test was run
StringType
Any String
"unknown"
No
Yes
OpenGLServerExtensions
OpenGL Server Extensions
OpenGL server extensions of host on which test was run
StringType
Any String
"unknown"
No
Yes
GLXVersion
GLX Server Version
GLX server version of host on which test was run
StringType
Any String
"unknown"
No
Yes
GLXExtensions
GLX Server Extensions
GLX server extensions of host on which test was run
StringType
Any String
"unknown"
No
Yes
ScreenNumber
Screen Number
X Screen Number of host on which test was run
UnrangedInteger
Any Integer
-1
No
Yes
SharedMemConnection
Shared Memory Connection
Shared memory connection state
Enumerated
True
False
False
No
Yes
Properties for TexImage Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
ImageDepth
Image Depth
This is the depth of the texture image allocated in memory. Under one circumstance, a subimage of this image may be written. This is where ImageDepth is larger than TexImageDepth. By default, this parameter will be equal to ImageDepth unless explicitly set by the user. If TexImageDepth is larger than ImageDepth, it will be clamped to ImageDepth (this is not a bug!). (Supported only with GL_EXT_texture3D)
RangedInteger
[1, 2048]
1
Yes
Yes
ImageExtent
Image Extent
This is the extent (fourth dimension) of the texture image allocated in memory. Under one circumstance, a subimage of this image may be written. This is where ImageExtent is larger than TexImageExtent. By default, this parameter will be equal to ImageExtent unless explicitly set by the user. If TexImageExtent is larger than ImageExtent, it will be clamped to ImageExtent (this is not a bug!). (Supported only with GL_SGIS_texture4D)
RangedInteger
[1, 2048]
1
Yes
Yes
TexImageTarget
TexImage Target
Target of TexImage call
Enumerated
GL_TEXTURE_1D
GL_TEXTURE_2D
GL_DETAIL_TEXTURE_2D_SGIS
GL_TEXTURE_3D_EXT
GL_TEXTURE_4D_SGIS
GL_TEXTURE_2D
Yes
Yes
TexImageWidth
Width of TexImage
Width of TexImage call (width defaults to ImageWidth unless TexImageWidth is set, in which case it sets the subimage width)
RangedInteger
[1, 2048]
-1
Yes
Yes
TexImageHeight
Height of TexImage
Height of TexImage call (height defaults to ImageHeight unless TexImageHeight is set, in which case it sets the subimage height)
RangedInteger
[1, 2048]
-1
Yes
Yes
TexImageDepth
Depth of TexImage
Depth of TexImage call (depth defaults to ImageDepth unless TexImageDepth is set, in which case it sets the subimage depth) (Supported only with GL_EXT_texture3D)
RangedInteger
[1, 2048]
-1
Yes
Yes
TexImageExtent
Extent of TexImage
offset(texImageExtent),
RangedInteger
[1, 2048]
-1
Yes
Yes
TexImageComps
TexImage Ccmponents
Internal components/format of texture image
Enumerated
1
2
3
4
GL_ALPHA
GL_ALPHA4_EXT
GL_ALPHA8_EXT
GL_ALPHA12_EXT
GL_ALPHA16_EXT
GL_LUMINANCE
GL_LUMINANCE4_EXT
GL_LUMINANCE8_EXT
GL_LUMINANCE12_EXT
GL_LUMINANCE16_EXT
GL_LUMINANCE_ALPHA
GL_LUMINANCE4_ALPHA4_EXT
GL_LUMINANCE6_ALPHA2_EXT
GL_LUMINANCE8_ALPHA8_EXT
GL_LUMINANCE12_ALPHA4_EXT
GL_LUMINANCE12_ALPHA12_EXT
GL_LUMINANCE16_ALPHA16_EXT
GL_INTENSITY_EXT
GL_INTENSITY4_EXT
GL_INTENSITY8_EXT
GL_INTENSITY12_EXT
GL_INTENSITY16_EXT
GL_RGB
GL_RGB2_EXT
GL_RGB4_EXT
GL_RGB5_EXT
GL_RGB5_A1_EXT
GL_RGB8_EXT
GL_RGB10_EXT
GL_RGB10_A2_EXT
GL_RGB12_EXT
GL_RGB16_EXT
GL_RGBA
GL_RGBA2_EXT
GL_RGBA4_EXT
GL_RGBA8_EXT
GL_RGBA12_EXT
GL_RGBA16_EXT
GL_DUAL_ALPHA4_SGIS
GL_DUAL_ALPHA8_SGIS
GL_DUAL_ALPHA12_SGIS
GL_DUAL_ALPHA16_SGIS
GL_DUAL_LUMINANCE4_SGIS
GL_DUAL_LUMINANCE8_SGIS
GL_DUAL_LUMINANCE12_SGIS
GL_DUAL_LUMINANCE16_SGIS
GL_DUAL_INTENSITY4_SGIS
GL_DUAL_INTENSITY8_SGIS
GL_DUAL_INTENSITY12_SGIS
GL_DUAL_INTENSITY16_SGIS
GL_DUAL_LUMINANCE_ALPHA4_SGIS
GL_DUAL_LUMINANCE_ALPHA8_SGIS
GL_QUAD_ALPHA4_SGIS
GL_QUAD_ALPHA8_SGIS
GL_QUAD_LUMINANCE4_SGIS
GL_QUAD_LUMINANCE8_SGIS
GL_QUAD_INTENSITY4_SGIS
GL_QUAD_INTENSITY8_SGIS
3
Yes
Yes
TexImageBorder
Border of TexImage
Width of TexImage border
RangedInteger
[0, 2]
0
Yes
Yes
SubTexImageWidth
Width of SubTexImage
Width of SubTexImage call (width defaults to TexImageWidth unless SubTexImageWidth is set, in which case it sets the subtexture width) (only with GL_EXT_subtexture)
RangedInteger
[1, 2048]
-1
Yes
Yes
SubTexImageHeight
Height of SubTexImage
Height of SubTexImage call (height defaults to TexImageHeight unless SubTexImageHeight is set, in which case it sets the subtexture height) (only with GL_EXT_subtexture)
RangedInteger
[1, 2048]
-1
Yes
Yes
SubTexImageDepth
Depth of SubTexImage
Depth of SubTexImage call (width defaults to TexImageDepth unless SubTexImageDepth is set, in which case it sets the subtexture depth) (only with GL_EXT_subtexture and GL_EXT_texture3D)
RangedInteger
[1, 2048]
-1
Yes
Yes
ResidentTexObjs
Number of Resident Texture Objects
Number of resident texture objects (out of Objs). This is not a settable property, but can be helpful in analyzing the performance of swapping texture objects.
RangedInteger
[1, 1024]
-1
No
Yes
TexImageSrc
Source of Texture Image
Specifies where you will be loading your texture image from (the source of the texture image). Each option has vastly different semantics. SystemMemory forces the TexImage to be done from system memory with every call. DisplayList preloads the TexImage in a display list and then calls that list within the timing loop. This can be thought of as "binding" the texture on some systems. TexObj preloads the TexImage in a texture object and binds the texture(s) within the timing loop. Framebuffer allows the use of the copy_texture extension to copy an image out of the framebuffer into texture memory. (TexObj requires GL_EXT_texture_object, Framebuffer requires GL_EXT_copy_texture)
Enumerated
SystemMemory
DisplayList
TexObj
Framebuffer
SystemMemory
Yes
Yes
TexImageLevel
Texture Image Level
Specifies the level at which to load the texture image
RangedInteger
[0, 31]
0
Yes
Yes
TexImageBaseLevel
Base Texture Image Level
Specifies base texture mipmap level for use within the texture LOD extension (requires GL_SGI_texture_lod)
RangedInteger
[0, 31]
0
Yes
Yes
TexImageMaximumLevel
Maximum Texture Image Level
Specifies maximum texture mipmap level for use within the texture LOD extension (requires GL_SGI_texture_lod)
RangedInteger
[0, 31]
-1
Yes
Yes
TexImageMipmap
Method of Calculating Mipmaps
Specifies how you will be using mipmaps with the texture loads. None specifies that no mipmaps will be used. PreCalculate specifies that the mipmaps will be calculated prior to timing, but that the mipmaps will all be loaded within the loop. gluBuildMipmap requests that the mipmaps be generated within the timing loop using glu routines. If the generate_mipmap extension is supported, GenerateMipmapExt allows automatic generation of the mipmaps within the timing loop. (GenerateMipmapExt requires GL_SGIS_generate_mipmap)
Enumerated
None
PreCalculate
gluBuildMipmap
GenerateMipmapExt
None
Yes
Yes
ObjDraw
Object Drawn Between TexImage Loads
Draws object between TexImage calls to force loading
Enumerated
None
TexturedPoint
TexturedTriangle
None
Yes
Yes
DrawOrder
Order in which TexImage sections are Drawn
Order in which subimage TexImages are pulled out of memory and loaded
Enumerated
Serial
Spaced
Spaced
Yes
Yes
Properties for Text Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
CharFont
Character Font
Name of the font to use for drawing text
Enumerated
f8x13
f9x15
timR10
timR24
helvR10
helvR12
helvR18
f9x15
Yes
Yes
CharsPerString
Characters Per String
Number of characters per string drawn
RangedInteger
[1, 1024]
16
Yes
Yes
Properties for TransferMap Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
MapColor
PixelMap Color
Enable mapping of pixel colors using pixel maps
Enumerated
True
False
False
Yes
Yes
MapStencil
PixelMap Stencil
Enable mapping of stencil values using pixel maps
Enumerated
True
False
False
Yes
Yes
RedScale
PixelTransfer Red Scale Factor
PixelTransfer red scale factor
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
RedBias
PixelTransfer Red Bias Factor
PixelTransfer red bias factor
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
GreenScale
PixelTransfer Green Scale Factor
PixelTransfer green scale factor
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
GreenBias
PixelTransfer Green Bias Factor
PixelTransfer green bias factor
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
BlueScale
PixelTransfer Blue Scale Factor
PixelTransfer blue scale factor
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
BlueBias
PixelTransfer Blue Bias Factor
PixelTransfer blue bias factor
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
AlphaScale
PixelTransfer Alpha Scale Factor
PixelTransfer alpha scale factor
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
AlphaBias
PixelTransfer Alpha Bias Factor
PixelTransfer alpha bias factor
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
IndexShift
PixelTransfer Index Shift
PixelTransfer index shift
UnrangedInteger
Any Integer
0
Yes
Yes
IndexOffset
PixelTransfer Index Offset
PixelTransfer index offset
UnrangedInteger
Any Integer
0
Yes
Yes
DepthScale
PixelTransfer Depth Scale Factor
PixelTransfer depth scale factor
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
DepthBias
PixelTransfer Depth Bias Factor
PixelTransfer depth bias factor
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
RtoRMapSize
PixelMap R to R Size
PixelMap Red to Red map size
RangedInteger
[1, 65536]
1
Yes
Yes
GtoGMapSize
PixelMap G to G Size
PixelMap Green to Green map size
RangedInteger
[1, 65536]
1
Yes
Yes
BtoBMapSize
PixelMap B to B Size
PixelMap Blue to Blue map size
RangedInteger
[1, 65536]
1
Yes
Yes
AtoAMapSize
PixelMap A to A Size
PixelMap Alpha to Alpha map size
RangedInteger
[1, 65536]
1
Yes
Yes
ItoRMapSize
PixelMap I to R Size
PixelMap Index to Red map size
RangedInteger
[1, 65536]
1
Yes
Yes
ItoGMapSize
PixelMap I to G Size
PixelMap Index to Green map size
RangedInteger
[1, 65536]
1
Yes
Yes
ItoBMapSize
PixelMap I to B Size
PixelMap Index to Blue map size
RangedInteger
[1, 65536]
1
Yes
Yes
ItoAMapSize
PixelMap I to A Size
PixelMap Index to Alpha map size
RangedInteger
[1, 65536]
1
Yes
Yes
ItoIMapSize
PixelMap I to I Size
PixelMap Index to Index map size
RangedInteger
[1, 65536]
1
Yes
Yes
StoSMapSize
PixelMap S to S Size
PixelMap Stencil to Stencil map size
RangedInteger
[1, 65536]
1
Yes
Yes
ColorTable
Color Table Enabled
Color table enable state (only with GL_SGI_color_table)
Enumerated
True
False
False
Yes
Yes
ColorTableWidth
Color Table Width
Color table width (only with GL_SGI_color_table)
RangedInteger
[1, 65536]
256
Yes
Yes
ColorTableInternalFormat
Color Table Internal Format
Color table internal format (only with GL_SGI_color_table)
Enumerated
1
2
3
4
GL_ALPHA
GL_ALPHA4_EXT
GL_ALPHA8_EXT
GL_ALPHA12_EXT
GL_ALPHA16_EXT
GL_LUMINANCE
GL_LUMINANCE4_EXT
GL_LUMINANCE8_EXT
GL_LUMINANCE12_EXT
GL_LUMINANCE16_EXT
GL_LUMINANCE_ALPHA
GL_LUMINANCE4_ALPHA4_EXT
GL_LUMINANCE6_ALPHA2_EXT
GL_LUMINANCE8_ALPHA8_EXT
GL_LUMINANCE12_ALPHA4_EXT
GL_LUMINANCE12_ALPHA12_EXT
GL_LUMINANCE16_ALPHA16_EXT
GL_INTENSITY_EXT
GL_INTENSITY4_EXT
GL_INTENSITY8_EXT
GL_INTENSITY12_EXT
GL_INTENSITY16_EXT
GL_RGB
GL_RGB2_EXT
GL_RGB4_EXT
GL_RGB5_EXT
GL_RGB5_A1_EXT
GL_RGB8_EXT
GL_RGB10_EXT
GL_RGB10_A2_EXT
GL_RGB12_EXT
GL_RGB16_EXT
GL_RGBA
GL_RGBA2_EXT
GL_RGBA4_EXT
GL_RGBA8_EXT
GL_RGBA12_EXT
GL_RGBA16_EXT
GL_RGBA8_EXT
Yes
Yes
ConvolutionTarget
Convolution Target
Type of convolution operation (only with GL_EXT_convolution)
Enumerated
None
GL_CONVOLUTION_1D_EXT
GL_CONVOLUTION_2D_EXT
GL_SEPARABLE_2D_EXT
None
Yes
Yes
ConvolutionInternalFormat
Convolution Internal Format
Internal format of covolution operation (only with GL_EXT_convolution)
Enumerated
GL_LUMINANCE
GL_LUMINANCE_ALPHA
GL_INTENSITY_EXT
GL_RGB
GL_RGBA
GL_RGBA
Yes
Yes
ConvolutionWidth
Convolution Width
Width of kernel for covolution operation (only with GL_EXT_convolution)
RangedInteger
[1, 1024]
3
Yes
Yes
ConvolutionHeight
Convolution Height
Height of kernel for covolution operation (only with GL_EXT_convolution)
RangedInteger
[1, 1024]
3
Yes
Yes
ConvolutionRedScale
Convolution Red Scale Factor
Post convolution red scale factor (only with GL_EXT_convolution)
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
ConvolutionRedBias
Convolution Red Bias Factor
Post convolution red bias factor (only with GL_EXT_convolution)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
ConvolutionGreenScale
Convolution Green Scale Factor
Post convolution green scale factor (only with GL_EXT_convolution)
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
ConvolutionGreenBias
Convolution Green Bias Factor
Post convolution green bias factor (only with GL_EXT_convolution)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
ConvolutionBlueScale
Convolution Blue Scale Factor
Post convolution blue scale factor (only with GL_EXT_convolution)
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
ConvolutionBlueBias
Convolution Blue Bias Factor
Post convolution blue bias factor (only with GL_EXT_convolution)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
ConvolutionAlphaScale
Convolution Alpha Scale Factor
Post convolution alpha scale factor (only with GL_EXT_convolution)
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
ConvolutionAlphaBias
Convolution Alpha Bias Factor
Post convolution alpha bias factor (only with GL_EXT_convolution)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
PostConvolutionColorTable
Post Convolution Color Table Enabled
Post convolution color table enable state (only with GL_SGI_color_table)
Enumerated
True
False
False
Yes
Yes
PostConvolutionColorTableWidth
Post Convolution Color Table Width
Post convolution color table width (only with GL_SGI_color_table)
RangedInteger
[1, 65536]
256
Yes
Yes
PostConvolutionColorTableInternalFormat
Post Convolution Color Table Internal Format
Post convolution color table internal format (only with GL_SGI_color_table)
Enumerated
1
2
3
4
GL_ALPHA
GL_ALPHA4_EXT
GL_ALPHA8_EXT
GL_ALPHA12_EXT
GL_ALPHA16_EXT
GL_LUMINANCE
GL_LUMINANCE4_EXT
GL_LUMINANCE8_EXT
GL_LUMINANCE12_EXT
GL_LUMINANCE16_EXT
GL_LUMINANCE_ALPHA
GL_LUMINANCE4_ALPHA4_EXT
GL_LUMINANCE6_ALPHA2_EXT
GL_LUMINANCE8_ALPHA8_EXT
GL_LUMINANCE12_ALPHA4_EXT
GL_LUMINANCE12_ALPHA12_EXT
GL_LUMINANCE16_ALPHA16_EXT
GL_INTENSITY_EXT
GL_INTENSITY4_EXT
GL_INTENSITY8_EXT
GL_INTENSITY12_EXT
GL_INTENSITY16_EXT
GL_RGB
GL_RGB2_EXT
GL_RGB4_EXT
GL_RGB5_EXT
GL_RGB5_A1_EXT
GL_RGB8_EXT
GL_RGB10_EXT
GL_RGB10_A2_EXT
GL_RGB12_EXT
GL_RGB16_EXT
GL_RGBA
GL_RGBA2_EXT
GL_RGBA4_EXT
GL_RGBA8_EXT
GL_RGBA12_EXT
GL_RGBA16_EXT
GL_RGBA8_EXT
Yes
Yes
ColorMatrixRed0
Color Matrix Red 0
Color Matrix Red 0 (zeroth element in red vector) (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
ColorMatrixRed1
Color Matrix Red 1
Color Matrix Red 1 (first element in red vector) (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
ColorMatrixRed2
Color Matrix Red 2
Color Matrix Red 2 (second element in red vector) (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
ColorMatrixRed3
Color Matrix Red 3
Color Matrix Red 3 (third element in red vector) (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
ColorMatrixGreen0
Color Matrix Green 0
Color Matrix Green 0 (zeroth element in red vector) (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
ColorMatrixGreen1
Color Matrix Green 1
Color Matrix Green 1 (first element in red vector) (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
ColorMatrixGreen2
Color Matrix Green 2
Color Matrix Green 2 (second element in red vector) (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
ColorMatrixGreen3
Color Matrix Green 3
Color Matrix Green 3 (third element in red vector) (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
ColorMatrixBlue0
Color Matrix Blue 0
Color Matrix Blue 0 (zeroth element in red vector) (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
ColorMatrixBlue1
Color Matrix Blue 1
Color Matrix Blue 1 (first element in red vector) (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
ColorMatrixBlue2
Color Matrix Blue 2
Color Matrix Blue 2 (second element in red vector) (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
ColorMatrixBlue3
Color Matrix Blue 3
Color Matrix Blue 3 (third element in red vector) (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
ColorMatrixAlpha0
Color Matrix Alpha 0
Color Matrix Alpha 0 (zeroth element in red vector) (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
ColorMatrixAlpha1
Color Matrix Alpha 1
Color Matrix Alpha 1 (first element in red vector) (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
ColorMatrixAlpha2
Color Matrix Alpha 2
Color Matrix Alpha 2 (second element in red vector) (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
ColorMatrixAlpha3
Color Matrix Alpha 3
Color Matrix Alpha 3 (third element in red vector) (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
ColorMatrixRedScale
Color Matrix Red Scale Factor
Post color matrix red scale factor (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
ColorMatrixRedBias
Color Matrix Red Bias Factor
Post color matrix red bias factor (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
ColorMatrixGreenScale
Color Matrix Green Scale Factor
Post color matrix green scale factor (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
ColorMatrixGreenBias
Color Matrix Green Bias Factor
Post color matrix green bias factor (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
ColorMatrixBlueScale
Color Matrix Blue Scale Factor
Post color matrix blue scale factor (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
ColorMatrixBlueBias
Color Matrix Blue Bias Factor
Post color matrix blue bias factor (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
ColorMatrixAlphaScale
Color Matrix Alpha Scale Factor
Post color matrix alpha scale factor (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
1.
Yes
Yes
ColorMatrixAlphaBias
Color Matrix Alpha Bias Factor
Post color matrix alpha bias factor (only with GL_SGI_color_matrix)
UnrangedFloatOrInt
Any Float
0.
Yes
Yes
PostColorMatrixColorTable
Post Color Matrix Color Table Enabled
Post color matrix color table enable state (only with GL_SGI_color_table)
Enumerated
True
False
False
Yes
Yes
PostColorMatrixColorTableWidth
Post Color Matrix Color Table Width
Post color matrix color table width (only with GL_SGI_color_table)
RangedInteger
[1, 65536]
256
Yes
Yes
PostColorMatrixColorTableInternalFormat
Post Color Matrix Color Table Internal Format
Post color matrix color table internal format (only with GL_SGI_color_table)
Enumerated
1
2
3
4
GL_ALPHA
GL_ALPHA4_EXT
GL_ALPHA8_EXT
GL_ALPHA12_EXT
GL_ALPHA16_EXT
GL_LUMINANCE
GL_LUMINANCE4_EXT
GL_LUMINANCE8_EXT
GL_LUMINANCE12_EXT
GL_LUMINANCE16_EXT
GL_LUMINANCE_ALPHA
GL_LUMINANCE4_ALPHA4_EXT
GL_LUMINANCE6_ALPHA2_EXT
GL_LUMINANCE8_ALPHA8_EXT
GL_LUMINANCE12_ALPHA4_EXT
GL_LUMINANCE12_ALPHA12_EXT
GL_LUMINANCE16_ALPHA16_EXT
GL_INTENSITY_EXT
GL_INTENSITY4_EXT
GL_INTENSITY8_EXT
GL_INTENSITY12_EXT
GL_INTENSITY16_EXT
GL_RGB
GL_RGB2_EXT
GL_RGB4_EXT
GL_RGB5_EXT
GL_RGB5_A1_EXT
GL_RGB8_EXT
GL_RGB10_EXT
GL_RGB10_A2_EXT
GL_RGB12_EXT
GL_RGB16_EXT
GL_RGBA
GL_RGBA2_EXT
GL_RGBA4_EXT
GL_RGBA8_EXT
GL_RGBA12_EXT
GL_RGBA16_EXT
GL_RGBA8_EXT
Yes
Yes
Histogram
Histogram Enabled
Histogram enable state (only with GL_EXT_histogram)
Enumerated
True
False
False
Yes
Yes
HistogramWidth
Histogram Width
Histogram width (only with GL_EXT_histogram)
RangedInteger
[1, 65536]
256
Yes
Yes
HistogramInternalFormat
Histogram Internal Format
Histogram internal format (only with GL_EXT_histogram)
Enumerated
GL_ALPHA
GL_ALPHA4_EXT
GL_ALPHA8_EXT
GL_ALPHA12_EXT
GL_ALPHA16_EXT
GL_LUMINANCE
GL_LUMINANCE4_EXT
GL_LUMINANCE8_EXT
GL_LUMINANCE12_EXT
GL_LUMINANCE16_EXT
GL_LUMINANCE_ALPHA
GL_LUMINANCE4_ALPHA4_EXT
GL_LUMINANCE6_ALPHA2_EXT
GL_LUMINANCE8_ALPHA8_EXT
GL_LUMINANCE12_ALPHA4_EXT
GL_LUMINANCE12_ALPHA12_EXT
GL_LUMINANCE16_ALPHA16_EXT
GL_RGB
GL_RGB2_EXT
GL_RGB4_EXT
GL_RGB5_EXT
GL_RGB5_A1_EXT
GL_RGB8_EXT
GL_RGB10_EXT
GL_RGB10_A2_EXT
GL_RGB12_EXT
GL_RGB16_EXT
GL_RGBA
GL_RGBA2_EXT
GL_RGBA4_EXT
GL_RGBA8_EXT
GL_RGBA12_EXT
GL_RGBA16_EXT
GL_RGBA8_EXT
Yes
Yes
HistogramSink
Histogram Sink
Histogram sink - pixels thrown out after statistics are taken (only with GL_EXT_histogram)
Enumerated
True
False
False
Yes
Yes
Minmax
Minmax Enabled
Minmax enable state (only with GL_EXT_histogram)
Enumerated
True
False
False
Yes
Yes
MinmaxInternalFormat
Minmax Internal Format
Minmax internal format (only with GL_EXT_histogram)
Enumerated
GL_ALPHA
GL_ALPHA4_EXT
GL_ALPHA8_EXT
GL_ALPHA12_EXT
GL_ALPHA16_EXT
GL_LUMINANCE
GL_LUMINANCE4_EXT
GL_LUMINANCE8_EXT
GL_LUMINANCE12_EXT
GL_LUMINANCE16_EXT
GL_LUMINANCE_ALPHA
GL_LUMINANCE4_ALPHA4_EXT
GL_LUMINANCE6_ALPHA2_EXT
GL_LUMINANCE8_ALPHA8_EXT
GL_LUMINANCE12_ALPHA4_EXT
GL_LUMINANCE12_ALPHA12_EXT
GL_LUMINANCE16_ALPHA16_EXT
GL_RGB
GL_RGB2_EXT
GL_RGB4_EXT
GL_RGB5_EXT
GL_RGB5_A1_EXT
GL_RGB8_EXT
GL_RGB10_EXT
GL_RGB10_A2_EXT
GL_RGB12_EXT
GL_RGB16_EXT
GL_RGBA
GL_RGBA2_EXT
GL_RGBA4_EXT
GL_RGBA8_EXT
GL_RGBA12_EXT
GL_RGBA16_EXT
GL_RGBA8_EXT
Yes
Yes
MinmaxSink
Minmax Sink
Minmax sink - pixels thrown out after statistics are taken (only with GL_EXT_histogram)
Enumerated
True
False
False
Yes
Yes
Properties for TriangleStrip Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
TwistsPerStrip
Twists Per Triangle Strip
Number of twists in each triangle strip. To get results from this, you must specify FacingFront and FacingBack values other than the default
RangedInteger
[0, 100000]
0
Yes
Yes
Properties for Vertex Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
VertexArray
Use Vertex Array Extension
Use vertex array extension to define vertices and accompanying data (requires GL_EXT_vertex_array)
Enumerated
False
True
False
Yes
Yes
VertexArray11
Use 1.1 Vertex Arrays
Use OpenGL 1.1 definition for vertex arrays to define vertices (require OpenGL 1.1)
Enumerated
False
True
False
Yes
Yes
Size
Primitive Size
Size of single primitive in pixels
RangedFloatOrInt
[.01, 10000000]
10.0
Yes
Yes
ObjsPerBeginEnd
Objects Per Begin/End Structure
Number of objects defined between each pair of glBegin and glEnd calls
RangedInteger
[1, 100000]
120
Yes
Yes
VertexDim
Dimension of Vertex Data
Dimension of vertex data (may be limited by choice of compile time flags to 3 only, see README)
RangedInteger
[2, 3]
3
Yes
Yes
Orientation
Orientation
Orientation on each primitive around its center
Enumerated
Random
Vertical
Horizontal
Random
Yes
Yes
Antialias
Antialiasing
Anti-aliased (smooth) drawing enable state, with quality hint data
Enumerated
Off
On
GL_DONT_CARE
GL_FASTEST
GL_NICEST
Off
Yes
Yes
ColorData
Color/Index Data
Color data associated with vertex data
Enumerated
None
PerFacet
PerVertex
None
Yes
Yes
NormalData
Normal Data
Normal data associated with vertex data
Enumerated
None
PerFacet
PerVertex
None
Yes
Yes
TexData
Texture Coordinate Data
Texture coordinate data associated with vertex data
Enumerated
None
PerVertex
None
Yes
Yes
LockArrays
Use LockArraysSGI
Use LockArraysSGI (requires GL_SGI_compiled_vertex_array)
Enumerated
False
True
None
Yes
Yes
DrawElements
Use DrawElements
Use DrawElements for vertex array data (requires OpenGL 1.1)
Enumerated
False
True
None
Yes
Yes
InterleavedData
Interleaved Data
Interleave vertex array data (requires OpenGL 1.1)
Enumerated
False
True
None
Yes
Yes
ShadeModel
Shading Model
Shading model state
Enumerated
GL_SMOOTH
GL_FLAT
GL_SMOOTH
Yes
Yes
LocalLights
Number of Local Lights
Number of local lights
RangedInteger
[0, 8]
0
Yes
Yes
InfiniteLights
Number of Infinite Lights
Number of infinite lights
RangedInteger
[0, 8]
0
Yes
Yes
SpecularComponent
Specular Component
Material specular component is non-zero when On
Enumerated
On
Off
On
Yes
Yes
Shininess
Shininess
Material's shininess (or specular exponent)
RangedFloatOrInt
[0.0, 128.0]
10.0
Yes
Yes
LocalViewer
Local Viewer
Local viewer enable state
Enumerated
Off
On
Off
Yes
Yes
ColorMaterialMode
Color Material Properties
Component(s) changed with ColorMaterial call
Enumerated
GL_EMISSION
GL_AMBIENT
GL_DIFFUSE
GL_SPECULAR
GL_AMBIENT_AND_DIFFUSE
GL_AMBIENT_AND_DIFFUSE
Yes
Yes
ColorMaterialSide
Color Material Side
Side on which the material will change with ColorMaterial
Enumerated
GL_FRONT
GL_BACK
GL_FRONT_AND_BACK
GL_FRONT
Yes
Yes
Properties for Transform Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
TransformType
Transform Type
Type of transform to test
Enumerated
Translate
Rotate
Scale
Perspective
Ortho
Ortho2
Frustum
Rotate
Yes
Yes
PointDraw
Draw Point Between Transforms
Enables a point to be drawn between transforms to foil lazy evaluation
Enumerated
On
Off
Off
Yes
Yes
PushPop
Push and Pop Around Transforms
Enables a push to be done before the transform and a pop afterwards
Enumerated
On
Off
Off
Yes
Yes
Properties for Zoom Class
Property/String Names
Description
Type
Possible Values
Default Value
Settable?
Printed?
PixelZoomX
Pixel Zoom X
Pixel Zoom X factor
UnrangedFloat
Any Float
1.0
Yes
Yes
PixelZoomY
Pixel Zoom Y
Pixel Zoom Y factor
UnrangedFloat
Any Float
1.0
Yes
Yes
Examples
Let's say you want to measure the effects of lights on drawing triangles.
You could do this:
// Lit triangle example
TrianglesTest {
(InfiniteLights *) // Cycle through all possible number of lights
(NormalData PerVertex) // Supply one normal per vertex
}
Alternately, you could do the same thing by using a range instead of a
wildcard:
// Lit triangle example
TrianglesTest {
(InfiniteLights from 0 to 8) // Cycle through all possible number of lights
(NormalData PerVertex) // Supply one normal per vertex
}
The attributes used in examples above are both local attributes. This means
that they only affect tests created by that one test description. Global
attributes do not occur in a test description but lie outside them, and
affect all test descriptions which follow. Here's an example:
// Global attribute example
// These are our two global attributes
(AcceptObjs .5) // 50% of primitives will be trivially accepted
(RejectObjs .5) // 50% of primitives will be trivially rejected
// Here are our test descriptions
PointsTest // Do a point test, 50/50 accept/reject
LinesTest // Do a lines test, 50/50 accept/reject
TrianglesTest // Do a triangles test, 50/50 accept/reject
Notice that the global attribute affected the three test descriptions that
followed. If a global attribute does not pertain to a test description
which follows, it is harmless. For instance,
(LineWidth 2) // Global attribute
PointsTest // LineWidth doesn't apply to Points, attribute
// is ignored
LinesTest // Global attribute correctly applied to Lines
We have seen that one test description can create many tests by varying
values within an attribute. You are not limited to varying just one
attribute. For example,
PolygonTest {
(NormalData PerVertex)
(InfiniteLights from 1 to 2)
(LocalLights 1 2)
}
This would result in the Cartesian product of all the various attribute
values. In this case, four tests would arise from this one test
description:
- Polygon Test: NormalData PerVertex, InfiniteLights 1, LocalLights 1
- Polygon Test: NormalData PerVertex, InfiniteLights 1, LocalLights 2
- Polygon Test: NormalData PerVertex, InfiniteLights 2, LocalLights 1
- Polygon Test: NormalData PerVertex, InfiniteLights 2, LocalLights 2
Warnings, Bugs and Additional Work
You shouldn't specify an attribute twice -- for example, once as a global
attribute and once as a local:
(InfiniteLights 1 2)
TrianglesTest {
(InfiniteLights 1) // WARNING! This is the second time it's been used.
}
This will result in two identical tests. This is certainly not
counter-intuitive, but should be avoided.
If an attribute belonging to an abstract class doesn't apply to a child
class, multiple identical tests can occur. For example:
(ShadeModel GL_FLAT GL_SMOOTH)
PointsTest
Here, flat-shaded and smooth-shaded points are identical, but this
definition will create two cases anyway. Luckily, there aren't many
cases of this.
ColorMaterial has no effect in Color Index mode, thus a material must be
sent down every time instead. This has not been implemented in GLperf yet.
Stencil test operations have not been implemented yet.
Accumulation buffer operations have not been implemented yet.
Acknowledgements
Many thanks to John Dennis (DEC) for porting the C version of GLperf to
the Digital Equipment machines and restructuring a large part of the
include files. John also caught and fixed many type mismatches and
questionable coding practices that I used in the C version.
John also submitted all the environment querying mechanisms and integrated
them into GLperf.
Thanks to Michael Gold (SGI) for adding vertex arrays and porting the code
to Windows95. Thanks to Suzy Deffeyes (IBM) for porting the code to OS/2
WARP. Thanks to Thomax Rix (Intergraph) for porting to WindowsNT. Also,
thanks to Kevin Rushforth and Travis Bryson (both SUN) for their keen eyes
and diligence -- they improved GLperf in many ways.
Thanks to Barry Minor (IBM) for coding the better part of the layout code
and for doing the TextureImage module in the first version. Thanks to Chris
Mussack (IBM) for his invaluable architectural advice during the design of GLperf.